草庐IT

c++ - 特化 std::make_shared

全部标签

c++ - 我的 "out of the box"程序在哪里可以在 Windows 中可靠地创建目录?

例如,如果我的程序尝试使用CreateDirectory()创建一个目录在C:\ProgramFiles(x86)\[installdirectory]\中,会因为权限问题而失败。我听说理想的位置是C:\Users\[username]\AppData\Local\,但是还有其他“安全”位置吗?当然,它可能会因Windows版本而异。 最佳答案 C:\ProgramData是其他常用的位置。下面这个很有帮助,http://blogs.msdn.com/b/cjacks/archive/2008/02/05/where-should-

c++ - 使用平假名将 std::wstring 转换为 QString

我正在尝试将包含平假名的文本从wstring转换为QString,以便它可以用于标签的文本属性。但是,我的代码无法正常工作,我不确定这是为什么。下面的转换方式明显告诉我我做错了:std::wstringmyWString=L"SomeHiragana:あいうえお";ui->label->setText(QString::fromStdWString(myWString));输出:一些平假名:ã‚ã„ã†ãˆãŠ如果我直接把它们放在字符串中,我可以在标签上打印平假名:ui->label->setText("SomeHiragana:あいうえお");输出:一些平假名:あいうえお这意味着我可

c - 将非 BMP 代码点写入控制台

Windows控制台API提供了WriteConsoleOutput函数,它允许您将字符写入控制台上的任意位置。此函数采用CHAR_INFO的数组。结构作为参数,指定:要写的字符(即代码点)其属性但是CHAR_INFO结构只允许将代码点指定为WCHAR或CHAR。CHAR仅支持ANSI字符,WCHAR仅支持U+0000到U+FFFF范围内的代码点(即theBMP)。有没有办法使用控制台API写出U+10000到U+10FFFF范围内的代码点?IE。在BMP之外编写代码点? 最佳答案 据我所知,Windows控制台API仅限于UCS2

c - lua5.2在windows中调用c dll

我的C代码如下:skype分析器.h#include"lua.h"#include"lualib.h"#include"lauxlib.h"#include"stdio.h"#include"stdlib.h"//dllexportfuncint_declspec(dllexport)luaopen_skypeAnalyzer(lua_State*L);skype分析器.c#include"skypeAnalyzer.h"#include#includeintrun(lua_State*L){printf("------->>>Hi!%s\n",lua_tostring(L,1));r

c - 如何处理跨平台 C 库中的 Unicode 路径?

我正在为C语言库做贡献。它有一个函数,该函数采用char*参数作为文件路径名。作者大多是UNIX开发人员,这在char*主要表示UTF-8的unix上运行良好。(至少inGCC,字符集可配置,默认为UTF-8。)但是,char*在Windows上表示ANSI,这意味着目前无法在Windows上使用此库的Unicode路径名,而应该使用wchar_t*并且仅支持UTF-16。(quicksearchonStackOverflow显示ANSIWindowsAPI函数不能与UTF-8一起使用。)问题是,处理这个问题的正确方法是什么?我们想出了各种方法来做到这一点,但我们都不是Windows专

.net - 桌面 .net 应用程序的 LDAP/AD 集成 : does it make sense?

我有一位客户要求将Windows的LDAP/AD登录与桌面.NET应用程序集成。它是一个桌面.NET应用程序,这意味着它不是一个可公开访问的网页:它是一个带有GUI的可执行文件,将在Windows下作为程序(而不是作为服务)运行,并在本地复制到计算机上。客户要求将此作为安全措施。当您打开应用程序时,您输入用户名和密码并使用LDAP进行身份验证检查。我真的不明白这应该保护什么安全风险:应用程序在Windows下运行,因此Windows用户必须已经登录->在Windows登录和应用程序登录时检查凭据有什么意义?我能想到的唯一情况是,如果有人在登录Windows时让他的计算机无人看管,在这种

c - 如何检测进程是否作为服务安装

我已经创建了一个win32应用程序,它应该作为服务和应用程序运行。当我单击并运行它时,它应该作为应用程序运行。当从服务Controller调用时,它应该检测到它并分支以作为服务运行。我如何在不传递参数的情况下检测到这一点?阿布扎德先生 最佳答案 传统(也是最简单)的方法是调用StartServiceCtrlDispatcher()并且,如果失败,则假设您没有作为服务运行。这在实践中效果很好,尽管从技术上讲我不相信Microsoft保证它会这样做。如果您想要更稳健的方法,您可以examineyoursecuritytoken查看它是否

c - 未检测到 Windows CreateProcess 退出

我正在尝试使用单独的进程来完成一些工作。在Windows版本中,我使用CreateProcess启动它并正常重定向标准输入/标准输出(继承的匿名管道)。管道工作;但是,当子进程退出时,父进程会挂起读取调用。父进程如何知道子进程已经退出?我认为ReadFile应该在子进程退出时立即返回一个损坏的管道错误。用于创建具有重定向输入和输出的子进程的Windows示例代码具有相同的问题,因此我将其作为MCVE发布。也可在https://msdn.microsoft.com/library/windows/desktop/ms682499获得#include#include#include#inc

c - 在 Windows 上使用 gettimeofday() 等价物

我正在尝试使用VisualStudio2013在Windows上为UNIX的gettimeofday()函数使用2个不同的等价物。我从here中拿了第一个.作为第二个,我正在使用_ftime64_s函数,如here所解释的那样.它们有效,但不如我预期。我想在打印秒数或至少毫秒数时获得不同的值,但我使用gettimeofday()(mytime1和mytime2)和_ftime64_s(mytime3和mytime4)获得相同的打印值。不过值得一提的是,这两个函数的毫秒值确实不同(即mytime1/mytime2和mytime3/mytime4的毫秒值不同)。这是我的代码:#includ

c - 限制进程对管道的访问 (Windows)

是否可以通过进程限制对命名管道的访问(图像名称或进程ID都可以)?此处的上下文是一个FilterMinidriver,它必须与执行大部分业务逻辑的用户空间服务进行通信。由于此通信是安全敏感的,我想保护它免受外部干扰,而默认情况下,驱动程序创建的命名管道似乎可以通过任何用户空间进程进行通信知道管道的名称(通过静态或动态分析很容易发现)。这是我已经知道的:管道是Windows中的安全对象,因此,它们具有安全描述符。这个安全描述符可以包含一个DACL,它应该限制对该对象的访问。我广泛搜索了条件ACE的文档和示例,我希望它们可以做我想做的事,但我没有找到任何相关内容。编辑:我接受了MSalte